home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Camelot / Camelot 098 (1990-12)(Swedish User Group of Amiga)(SE)(PD)[WB].zip / Camelot 098 (1990-12)(Swedish User Group of Amiga)(SE)(PD)[WB].adf / XLisp-Stat / Book / regdialog.lsp < prev    next >
Lisp/Scheme  |  1990-10-11  |  1KB  |  33 lines

  1. ; book pp.228-231
  2.  
  3. (setf intercept (send toggle-item-proto :new "Intercept" :value t))
  4. (setf x-item-0 (send toggle-item-proto :new "X0"))
  5. (setf x-item-1 (send toggle-item-proto :new "X1"))
  6. (setf x-item-2 (send toggle-item-proto :new "X2"))
  7. (setf y-item (send choice-item-proto :new (list "Y0" "Y1" "Y2") :value 1))
  8. (setf x-label (send text-item-proto :new "X Variables"))
  9. (setf y-label (send text-item-proto :new "Y Variables"))
  10. (setf prompt (send text-item-proto :new "Name:"))
  11. (setf name (send edit-text-item-proto :new "" :text-length 15))
  12. (setf cancel (send modal-button-proto :new "Cancel"))
  13.  
  14. (defun collect-values ()
  15.   (list (send name :text)
  16.         (send y-item :value)
  17.         (which (list (send x-item-0 :value)
  18.                      (send x-item-1 :value)
  19.                      (send x-item-2 :value)))
  20.         (send intercept :value)))
  21. (setf ok (send modal-button-proto :new "OK" :action #'collect-values))
  22.  
  23. (setf reg-dialog
  24.       (send modal-dialog-proto :new
  25.             (list
  26.              (list
  27.               (list y-label y-item intercept)
  28.               (list x-label x-item-0 x-item-1 x-item-2))
  29.              (list prompt name)
  30.              (list ok cancel))))
  31.  
  32. (send reg-dialog :modal-dialog)
  33.